home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Special 25
/
AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso
/
Updates
/
Librarys
/
MMULib
/
MMULib.readme
< prev
next >
Wrap
Text File
|
2000-05-04
|
12KB
|
257 lines
Short: Library to ctrl the MC68K MMUs
Uploader: thor@math.tu-berlin.de (Thomas Richter)
Author: thor@math.tu-berlin.de (Thomas Richter)
Type: util/libs
Requires: Os 2.04, a 68020/68851, 68030, 68040 or 68060 with a working MMU
Version: 42.2
NOTE: The developer information went now into the "MuManual" archive, this
is the "user only" distribution.
-----------------------------------------------------------------------------
Purpose and goal of this library:
The mmu.library is a basis for MMU (memory management) related functions the
MC68K family can perform. Up to now certain hacks are available that program
the MMU themselves (Enforcer,CyberGuard,GuardianAngle,SetCPU,Shapeshifter,
VMM,GigaMem...).
It's therefore not unexpected that these tools conflict with each other.
There's up to now no Os support for the MMU at all - the gap this mmu.library
fills.
The goal is to provide a basis of functions to address and program the MMU in
a hardware independent, Os friendly fashion. Hence, the new version of the
Enforcer, called MuForce, will work together with virtual memory, and others.
The mmu.library is also the basis for a virtual memory project, the
memory.library. Even though the mmu.library does not provide virtual memory
itself, it builds the basics to allow an easy implementation and to avoid the
hacks required by other implementations so far.
------------------------------------------------------------------------------
Changes since V42.1
---------------------
- The 42.1 release automatically marked all hardware pages as
cacheinhibited serialized. Looks like even that was too much for
some hardware boards, I don't know why. This should be the proper
default anyhow. I disabled this again, even though this means,
as for 42.0 and before, that a MMU-Configuration is *mandatory*
if you use the library as "stand-alone" instead on top of a third-
party 68040/68060 library.
Changes since V42.0:
---------------------
- Installation: P5Init, PPCIdentify, P5Identify reworked again, it
enables now explicitly the bus error generation of the A4000
motherboard resources.
- Installation Rexx scripts: Added a "NoP5" keyword to disable ex-
plicitly the P5 identification steps which seem to be problematic
for some boards for reasons that are beyond me.
- MuManual: Fixed some typos, corrected some mistakes, clarified some
formulations. Thanks to Etienne Voigt for proofreading!
- Organization: The "MMULib" archive is now the user archive, all
developer information went into the "MuManual" archive, including
the autodocs, the includes, the bmaps and some example sources.
This will help to keep the archive short.
- mmulib: The CurrentContext() function forgot to Forbid() properly.
Note that you still need a Forbid() bracketing or the result code
might be pretty useless. The propability that this broke code is
very low, though.
- mmulib: GetMappingProperties() was simply broken in V42.0 and below.
Sorry, this got fixed. This function hasn't been used yet, so this
bug was left unnoticed.
- Included a debug version of the library in the MuManual archive.
- BlizKick: In order to avoid a yellow alert, either BlizKick must be
modified or must be run behind SetPatch. The reason for the alert
is that BlizKick opens the mmu.library before the 68060/68040 lib
is open, which is and never has been legal. I just added an explicit
check for this condition in V42 because too many people ignored it.
As I said, "no discussion". This is a side effect of how the library
works and has to work.
Changes since V41.xx:
---------------------
- mmu.library: Added more error checking for the startup code, esp.
the MMU-Configuration file. Added a check for proper config-
uration, i.e. whether the library was (incorrectly) loaded in
front of SetPatch.
- Added a new function: RunOldConfig(). It runs a small supervisor
routine with the boot MMU configuration.
- 68040.library: Added an explicit check for correct configuration,
it will generate a requester in case no 68040 is available.
- MuGuardianAngel: Fixed a bug in the mung-wall check which could
have reported one additional mung-wall damage in case the front
wall was found defective. Added a workaround for a possible
68060 firmware bug, the "U" bit is now always set in the MMU
descriptors to avoid unnecessary MMU writebacks.
- In case you see MuGuardianAngel hits of the z3scsi.device, run
the FixCybAccess program. It will work around the z3scsi.device
hits as well. Thanks, Helmut.
- MuMove4K PREPAREEMUL moves now the low chip memory end to the
16K line, not to the 8K line. This might fix some Fusion
problems. Thanks, Pavel.
- Improved the error messages of MuFastZero a little bit.
- Reworked P5Identify and PPCIdentify to make these two more
stable.
- Added another external MMU setup command, P5Init. It should
keep care about all P5 specific cache settings and should
setup the PPC and the BOOT-MMU-Port automatically. All manual
P5 specific entries in the MMU-Configuration except graphic
board cachings are obsolete now and should be replaced by
P5Init.
- Rewrote both setup scripts to reflect the changes in the P5
setup logic, i.e. ScanMMUPort has been replaced by P5Init and
all P5 specific cache settings have been removed.
- Added stack increasement patches for the mfm.device (CrossDos)
and IPrefs 40.7 in case you do not yet use Os 3.5. Thanks Gene.
- Added a fix for two bugs in ramlib. First, its stack is too
low. Second, it uses SIGF_SINGLE as message bit for its process
port which could cause some race conditions with semaphores in
library setup code.
- The MuGuardianAngel patch report and automatic IRQ check have
been reworked a bit. The "patches overwritten" message is now
no longer periodically generated, but will be suspended up to
the next "real" hit where another message will be generated.
- The MuGuardianAngel automatic IRQ stack was not only useless,
but in fact broken. This does not go for the stack check of the
exec memory handling functions which was and still is fine.
Good enough it was recommended to leave the IRQ check disabled.
"Nearly out of stack" warnings were not generated by the IRQ code
at all, and the stack overflow and stack underflow messages
usually report "bogus" hits due to its construction. Stack
snooping is now by default ENABLED, except for "out of bounds"
reports, which still requires STACKSNOOP option explicitly.
Added an option to adjust the minimal stack size for the
"Nearly out of stack" reports, but it can be made only larger,
i.e. more "picky".
- mmu.library: The pre-42 releases only marked the zero page as
non-blank which might have caused problems for some Mac emu-
lators. It now marks the lowest 32K as valid. Former versions
set it to "cacheinhibit", it is now set to "cacheinhibit nonser-
ialized imprecise".
- mmu.library: The low-memory limit up to which the mmu.library
has to software-emulate accesses has been made adjustable.
- mmu.library: Due to a bug in the high-level mapping list manage-
ment, MAPP_INDIRECT did not work correctly.
- mmu.library: BuildIndirect() performs now a few more consistency
checks and is less restrictive for MAPP_INVALID and MAPP_SWAPPED.
- Updated the DMAInitiate() function, it provides now a return code
instead going guru if it doesn't like the parameters.
- Updated MuOmniSCSIPatch to reflect the changes made to
DMAInitiate().
- Fixed many documentation errors in mmu.doc, updated and checked
exception.doc again.
- Included a demo program for indirect descriptor handling.
- Speedup SetIndirect() somewhat by placing this routine directly
in the MMU drivers as a "native" operation.
- Added a new LVO "SetIndirectArray()" to set more than one
indirect descriptor at once. Should be *very* fast.
- The startup command "DescriptorCacheInhibit" did not pass a proper
result code on success and hence caused a yellow alert. This bug
was only noticable in some of the V42